Computer graphics files are used to store graphical images which may be created, modified, and printed using a graphics program. The two basic types of computer graphics are object-oriented graphics, also referred to as vector graphics, and bit-mapped graphics, also referred to as raster graphics. Object-oriented graphics programs, usually called "draw" programs, store graphical images in the form of mathematical representations that can be sized and scaled without distortion. Object-oriented graphics are well suited for computer-aided design applications in which precision and scaling capability are most important. Bit-mapped graphics programs, often called "paint" programs, store graphical images in the form of patterns of screen pixels. Scanned graphical images, such as scanned photographs, are generally stored as bit-mapped graphics. Unlike object-oriented graphics files, bit-mapped graphics files may result in unacceptable distortion when resized or scaled.
Although there are two basic types of computer graphics, many different graphics file formats exist. Unfortunately, little standardization exists between the numerous graphics file formats. Many application programs generate graphics files in proprietary file formats that other programs can read only if specifically equipped to do so. Other graphics file formats are suitable or desirable for one purpose but may be less desirable for other applications. Thus, it is often desirable to convert a graphics file from one format to another format. The following non-exhaustive list contains the acronyms of some of the available graphics file formats: AI, BMP, CDR, CGM, CMX, DIB, DMK, DRW, DSF, DS4, DWG, DXF, EMF, EPS, FRM, GEM, GIF, HPGL, IGS, JAH, JBH, JPG, JSH, MGX, PCT, PCX, PHOTOCD, PLT, PNG, PP, PP4, PPF, PS, PSD, RAW, SCITEX, S3D, SUNRAS, TGA, TIF, WMF, and WPG.
In order to convert a graphics file from an input format to an output format, various conversion programs or translators have been developed. These graphics file conversion programs may be implemented as dynamic link libraries (DLLs), static link libraries, executable files, and the like. A family of conversion programs or translators may be grouped and referred to as a library family, a filter family, or a technology translator family. A family can convert a graphics file in one logical process.
A family may convert a graphics file from an input format to an output format. The translation of a graphics file from an input format to an output format may include the translation from a bit-mapped graphics file type to an object-oriented graphics file type and vice versa. Each family includes a predefined number of input graphics formats that the family is capable of reading and a predefined number of output graphics formats that the family is capable of writing. A family receives an input graphics file and generates an output graphics file stored in the desired format. It is often necessary to use more than one family to convert from an input file format to an output file format because one family may not be capable of both reading the necessary input format and generating the desired output format. Also, often there are multiple paths or routes that may be traversed to convert a graphics file from an input file format to a desired output file format. Often, one translation path will be better or more desirable than all other paths.
A non-exhaustive list of available library families includes the following: (1) ALDUS ImportGR Specification DLL Family; (2) INSO ImageStream Filters Family; (3) MGXRDR32.DLL MICROGRAFX Rendering Engine DLL Family; (4) PICTURE PUBLISHER Bitmap Libraries Family; and (5) VBORNDR.DLL Simply 3D Rendering Engine DLL Family. Each of these families may convert computer graphics files from an input format to an output format. For example, and as illustrated below, PICTURE PUBLISHER Bitmap Libraries Family may convert graphics files from any of the formats listed in the read list below to any of the formats listed in the write list below:
Read List Write List BMP BMP DIB DIB DMK DMK FRM FRM GIF GIF JPG JPG PCX PCX PHOTOCD PNG PNG PP PP PP4 PP4 PPF PPF PSD PSD SCITEX RAW SUNRAS SCITEX TGA SUNRAS TIF TGA TIF
Other library families provide substantially fewer read and write format conversion options. For example, the MGXRDR32.DLL MICROGRAFX Rendering Engine DLL Family can convert files from any of the formats listed in the read list below to the WMF format listed in the write list
 Read List Write List DRW WMF DSF DS4 MGX
As mentioned above, it is often not possible to translate a graphics file directly from an input format to a desired output format using only one library family. Instead, multiple families must be used. However, certain translation paths are much more advantageous than other translation paths.
Prior attempts have been used to ensure that the most advantageous or "best" translation path is followed. Unfortunately, these prior techniques suffer serious drawbacks. One technique for determining the best translation path involves "hard" coding all of the best translation paths. This presents numerous problems. The table or database used to store all of the possible best translation paths requires significant memory, storage capacity, and often becomes unwieldy. Furthermore, whenever a new translator or library family becomes available, the table cannot be easily updated. The hard coded table is difficult to maintain, cumbersome, and inflexible.
The determination of the best path may depend upon what the user is trying to accomplish and how the user will use the output graphics file. For example, the user may be interested in such things as the speed of the conversion, the visual clarity of the conversion, the "editability" of the conversion, and the size of the converted file. The hard coded method makes it difficult to allow for such alternative best translation paths.